Page({
  data: {
    //当前登录状态
    isLogin:false,
    //用户类型
    userType:null,
    isMsgBoxBack: false,
    //输入取餐号弹窗是否显示
    isTelMsgBoxShow:false,
    //当前绑定的手机号码
    nowTel:null,
    //当前用户身份
    userType:null,
    //加密后的手机号码
    serectNum:null,
    //用户输入的取餐号，通过绑定input事件实现数据双向绑定
    takeNumber: null,
    //标记顾客是否需要补全手机号
    needFullTel:false,
    errorMsg:null,
    /**
     * 外卖员相关data
     */
    //存餐进度（0：待填写存餐号；1：待选择空闲存柜；2：存放完成）
    process:0,
    //设置存餐码输入框是否可编辑
    isInputDisabled:false,
    //输入的存餐码是否合法（11位）
    isTelOk:false,
    //设置选择柜号是否初次加载
    firstLoad:true,
    //设置是否已提交
    haveSubmit:false,
    //空闲柜号数据
    freeCabList:[],
    //外卖员最后填写的空闲柜号指针
    index:0

  },
   //关闭弹窗
   closeMsgBox:function(){
    this.setData({
        isMsgBoxBack:false,
        isTelMsgBoxShow:false,
        errorMsg:null,
        needFullTel:false
    })
},
//打开取餐号输入弹窗
openTelBox:function(){
//验证是否登录
//用户未登录，提示先登录才能操作
if(this.data.isLogin==false){
wx.showModal({
  title: '拒绝操作',
  content: '请登录后再使用取餐功能',
  success(res){
    //用户点击确定,导航到登录页
    if(res.confirm){
         wx.switchTab({
           url: '/pages/login/login'
         })
    }else if(res.cancel){
       //用户点击取消，无操作
    }
  }
})
return;
}

 this.setData({
     isMsgBoxBack:true,
     isTelMsgBoxShow:true,
     //清空输入框:
     takeNumber:null
 })
},
//号码加密
doSerectNum:function(realNum){
  var x="";
  x=realNum;
  var len=x.length;
  return  x.substring(0,3)+'***'+ x.substring(len-4,len);
},
//获取输入的取餐单号,绑定数据
getTakeNumber:function(e){
  this.setData({
    takeNumber: e.detail.value
  })
},
//填入默认手机号后四位
autoFillNumber:function(){
this.setData({
  takeNumber: this.data.serectNum.substring(this.data.serectNum.length-4,this.data.serectNum.length)
})
},
getCabNumber:function(){
  var commitNum=this.data.takeNumber;
  var queryPattern=this.data.needFullTel;
  var that=this;
  var app=getApp();

  //用户未输入订单号，提示异常
  if(commitNum==null) {
 this.setData({
   errorMsg:"单号不能为空"
 });
 return;
  }
  if(queryPattern==false){
    //模糊搜索（用户提供手机号后四位）
    if(commitNum.length!=4){
      this.setData({
        errorMsg:"请正确输入四位手机尾号"
      });
      return;
    }else{
      wx.request({
        url: `http://${app.globalData.serverAddress}/getOrderFuzzy`,
        method:'GET',
        header:{
          'content-type':'application/json',
          'cookie':app.globalData.session
        },
        dataType:'json',
        data:{
          number:commitNum
        },
        success:(res)=>{
          var cmd=res.data.result;
          if(cmd==0){
            //找不到
            wx.showModal({
               title:"找不到订单",
               content:`找不到手机号末尾为${commitNum}的订单`,
               showCancel:false
            });
          }else if(cmd==1){
            //找到一条
            wx.showModal({
              title:"柜门已打开，请及时取餐",
              content:`柜号：${res.data.order.cabId}`,
              showCancel:false,
              success:function(){
                //取餐，打开柜门
                that.getTakeAction(res.data.order.cabId);
              }
            })
          }else{
            //找到多条
            wx.showModal({
              title:"找到多个订单",
              content:`请完整输入手机号`,
              showCancel:false
           });
           //切换状态为准确查询
           that.setData({
             needFullTel:true
           })
          }
        },
        fail:function(msg){
            console.error(msg);
        }

      })
    }
  }else{
      //精确搜索（用户提供完整手机号）
      if(commitNum.length!=11){
        that.setData({
          errorMsg:"请正确输入11位手机号"
        })
      }else{
        wx.request({
          url: `http://${app.globalData.serverAddress}/getOrderPrecise`,
          method:'GET',
          header:{
            'content-type':'application/json',
            'cookie':app.globalData.session
          },
          dataType:'json',
          data:{
            number:commitNum
          },
          success:function(res){
            var cmd=res.data.result;
            if(cmd==0){
               //找不到
            wx.showModal({
              title:"找不到订单",
              content:`找不到手机号末尾为${commitNum}的订单`,
              showCancel:false
           });
            }else{
              //找到一条
              wx.showModal({
                title:"取餐完毕后请及时关闭柜门",
                content:`柜号：${res.data.order.cabId}`,
                showCancel:false,
                success:function(){
                  //取餐，打开柜门
                  that.getTakeAction(res.data.order.cabId);
                }
              })
            }

          },
          fail:function(msg){
            console.log(msg);
          }
        })
      }
  }
},
//取餐操作
getTakeAction:function(cabId){
  var app=getApp();
  var that=this;
  wx.request({
    url: `http://${app.globalData.serverAddress}/completeOrder`,
    method:'GET',
    header:{
      'content-type':'application/json',
      'cookie':app.globalData.session
    },
    dataType:'json',
    data:{
      'cabId':cabId,
      'userId':app.globalData.openId
    },
    success:function(){
      that.closeMsgBox();
       wx.showToast({
         title: '取餐完成',
         icon:'success'
       });
    },
    fail:function(msg){
      console.log(msg);
    }
  })

},
//跳转取餐历史查看页面
toHistoryPage:function(){
  wx.navigateTo({
    url: '/pages/history/list'
  })
},

/**
 * 外卖员相关功能
 * 
 */

//绑定pick组件修改的值
getCabIdChange:function(e){
this.setData({
  index:e.detail.value,
  firstLoad:false
});
},
//输入存餐码时验证合法性
checkTelCode:function(e){
var value=e.detail.value;
var isOk=false;
if(value.length==11) isOk=true;
this.setData({
  isTelOk:isOk
});
},
//外卖员点击下一步
nextStep:function(){
//检验手机号合法性，略
//。。。。
//向后台查询空柜信息，保存到data的freeCabList中
var app=getApp();
var that=this;
wx.request({
  url: `http://${app.globalData.serverAddress}/listFreeCab`,
  method:'GET',
  header:{
    'cookie':app.globalData.session
  },
  success(res){
    that.setData({
    freeCabList: res.data
    });
  },
  fail:function(msg){
    console.log(msg);
  }
})
//设置进度标识为1
this.setData({
  process:1,
  isInputDisabled:true
});

},
// 外卖员存放订单
saveOrder:function(e){
  var userTel=e.detail.value.userTel;
  var index=e.detail.value.index;
  var cabId=this.data.freeCabList[index].id;
  var app=getApp();
  var that=this;
  wx.request({
    url: `http://${app.globalData.serverAddress}/saveOrder`,
    method:'GET',
    header:{
      'content-type':'application/json',
      'cookie':app.globalData.session
    },
    dataType:'json',
    data:{
      cabId:cabId,
      userTel:userTel
    },
    success(){
      that.setData({
        haveSubmit:true
      })
    },
    fail:function(msg){
      console.log(msg);
    }
  
})},
//重置表单进度
resetProcess:function(){
//后台发送短信
var index=this.data.index;
console.log(this.data.freeCabList[index]);
var myCabId=this.data.freeCabList[index].serialNumber;
var app=getApp();

wx.request({
  url: `http://${app.globalData.serverAddress}/sendMail`,
  method:'GET',
  header:{
    'content-type':'application/json',
    'cookie':app.globalData.session
  },
  dataType:'json',
  data:{
    cabId:myCabId
  },
  success(){
    wx.showToast({
      title: '发送短信成功',
      icon: 'success',
      duration:2000
    })
  },
  fail:function(msg){
    console.log(msg);
    wx.showToast({
      title: '发送短信失败',
      icon: 'error',
      duration:2000
    })
  }
});
//开始重置

  this.setData({
//存餐进度（0：待填写存餐号；1：待选择空闲存柜；2：存放完成）
process:0,
//设置存餐码输入框是否可编辑
isInputDisabled:false,
//输入的存餐码是否合法（11位）
isTelOk:false,
//设置选择柜号是否初次加载
firstLoad:true,
//设置是否已提交
haveSubmit:false,
//空闲柜号数据
freeCabList:[],
//外卖员最后填写的空闲柜号指针
index:0
  });
},






//页面展示时触发
onShow:function(){
  var app=getApp();
        this.setData({
            nowTel: app.globalData.telNumber,
            serectNum: this.doSerectNum(app.globalData.telNumber),
            isLogin: app.globalData.isLogin,
            userType:app.globalData.userType
        })
}
})